package com.weaving.monitor.mapper;

import com.weaving.monitor.entity.OrderDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 订单详情数据访问层接口
 * 
 * 功能说明：
 * 1. 定义与订单详情相关的数据库操作接口
 * 2. 提供根据机器ID查询订单详情的功能
 * 
 * 注解说明：
 * - @Mapper: MyBatis注解，标识这是一个Mapper接口
 * 
 * 方法说明：
 * - selectOrderDetailByMachineId: 根据机器ID查询订单详情
 * 
 * @author 系统开发团队
 * @version 1.0
 * @since 2024-01-01
 */
@Mapper
public interface OrderDetailMapper {
    
    /**
     * 根据机器ID查询订单详情
     * 
     * 功能说明：
     * 1. 通过机器ID查询对应的订单详情信息
     * 2. 实现复杂的关联查询逻辑
     * 
     * 查询逻辑：
     * 1. 从prod_prod_card表查询状态为'1'的记录
     * 2. 关联prod_prod_order表获取订单信息
     * 3. 关联mat_cloth_type表获取物料类型
     * 4. 返回订单编号、数量、已完成数量、物料类型
     * 
     * 参数说明：
     * - machineId: 机器ID，如"J001"
     * 
     * 返回值说明：
     * - OrderDetail: 订单详情对象
     * - null: 如果未找到对应的记录
     * 
     * SQL说明：
     * - 主表：prod_prod_card（状态为'1'）
     * - 关联表1：prod_prod_order（订单信息）
     * - 关联表2：mat_cloth_type（物料类型）
     * - 条件：c.status='1' AND c.machine_id=#{machineId}
     * 
     * @param machineId 机器ID，如"J001"
     * @return 订单详情对象，查询失败时返回null
     */
    OrderDetail selectOrderDetailByMachineId(@Param("machineId") String machineId);
} 